<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>promise.then()方法返回Promise对象的介绍</h1>

    <script>
        /*
            promise.then()返回的新promise的结果状态由什么决定?
            (1) 简单表达: 由then()指定的回调函数执行的结果决定
            (2) 详细表达:
                ① 如果抛出异常, 新promise变为rejected, reason为抛出的异常
                ② 如果返回的是非promise的任意值, 新promise变为resolved, value为返回的值
                ③ 如果返回的是另一个新promise, 此promise的结果就会成为新promise的结果 
        */

        // 创建一个Promise对象
        const p = new Promise((resolve, reject) => {
           resolve("Hello World!");
           //reject("aaaa");
        });

        // 为p对象绑定回调, 并获取返回结果
        const res = p.then(value => {
            console.log("成功",value);
            //return "hello";
            //throw new Error("出错了");
            // 返回一个Promise新对象
            return new Promise((resolve, reject)=>{
                resolve("测试");
            });
            //return Promise.resolve("测试"); // 简写
        },reason => {
            console.log("失败", reason);
            //return 100;
        });

        console.log(res);



    </script>
</body>
</html>